package hashset;

import java.util.HashSet;
//2.哈希表的详细流程
//创建一个默认长度16，默认加载因为0.75的数组，数组名table
//根据元素的哈希值跟数组的长度计算出应存入的位置
//判断当前位置是否为null，如果是null直接存入，如果位置不为null，表示有元素，则调用equals方法比较属性值，如果一样，则不存，如果不一样，则存入数组。
//当数组存满到16*0.75=12时，就自动扩容，每次扩容原先的两倍
//⑤当链表挂载元素超过了8个(阈值)
//检查数组长度:
//没有到达64，扩容数组
//到达了64,会转换为红黑树


public class HashSetDemo1 {
    public static void main(String[] args) {
        HashSet<String> s1=new HashSet<>();
        s1.add("a");
        s1.add("c");
        s1.add("b");
        s1.add("c");
        s1.add("e");
        s1.add("f");
        s1.add("j");
        System.out.println(s1);
//        下面的"通话"和"重地"的hashcode值相同
        System.out.println("通话".hashCode());
        System.out.println("重地".hashCode());
    }
}
